const { app, dialog, shell } = require('electron')

function createMenuTemplate(mainWindow) {
  return [
    {
      label: '文件',
      submenu: [
        {
          label: '新建账号',
          accelerator: 'CmdOrCtrl+N',
          click: () => {
            mainWindow.webContents.send('menu-new-account')
          }
        },
        { type: 'separator' },
        {
          label: '导入数据',
          accelerator: 'CmdOrCtrl+I',
          click: () => {
            mainWindow.webContents.send('menu-import')
          }
        },
        {
          label: '导出数据',
          accelerator: 'CmdOrCtrl+E',
          click: () => {
            mainWindow.webContents.send('menu-export')
          }
        },
        { type: 'separator' },
        {
          label: '刷新数据',
          accelerator: 'CmdOrCtrl+R',
          click: () => {
            mainWindow.webContents.send('menu-refresh')
          }
        },
        {
          label: '锁定应用',
          accelerator: 'CmdOrCtrl+L',
          click: () => {
            mainWindow.webContents.send('app-lock')
          }
        },
        { type: 'separator' },
        {
          label: '退出',
          accelerator: process.platform === 'darwin' ? 'Cmd+Q' : 'Ctrl+Q',
          click: () => {
            app.quit()
          }
        }
      ]
    },
    {
      label: '编辑',
      submenu: [
        {
          label: '撤销',
          accelerator: 'CmdOrCtrl+Z',
          click: () => {
            mainWindow.webContents.send('menu-undo')
          }
        },
        {
          label: '重做',
          accelerator: 'CmdOrCtrl+Y',
          click: () => {
            mainWindow.webContents.send('menu-redo')
          }
        },
        { type: 'separator' },
        {
          label: '剪切',
          accelerator: 'CmdOrCtrl+X',
          click: () => {
            mainWindow.webContents.send('menu-cut')
          }
        },
        {
          label: '复制',
          accelerator: 'CmdOrCtrl+C',
          click: () => {
            mainWindow.webContents.send('menu-copy')
          }
        },
        {
          label: '粘贴',
          accelerator: 'CmdOrCtrl+V',
          click: () => {
            mainWindow.webContents.send('menu-paste')
          }
        },
        {
          label: '全选',
          accelerator: 'CmdOrCtrl+A',
          click: () => {
            mainWindow.webContents.send('menu-select-all')
          }
        },
        { type: 'separator' },
        {
          label: '搜索',
          accelerator: 'CmdOrCtrl+F',
          click: () => {
            mainWindow.webContents.send('menu-search')
          }
        },
        {
          label: '清除搜索',
          click: () => {
            mainWindow.webContents.send('menu-clear-search')
          }
        },
        { type: 'separator' },
        {
          label: '复制用户名',
          click: () => {
            mainWindow.webContents.send('menu-copy-username')
          }
        },
        {
          label: '复制密码',
          click: () => {
            mainWindow.webContents.send('menu-copy-password')
          }
        }
      ]
    },
    {
      label: '工具',
      submenu: [
        {
          label: '密码生成器',
          accelerator: 'CmdOrCtrl+G',
          click: () => {
            mainWindow.webContents.send('menu-password-generator')
          }
        },
        {
          label: '安全检查',
          accelerator: 'CmdOrCtrl+S',
          click: () => {
            mainWindow.webContents.send('menu-security-check')
          }
        },
        { type: 'separator' },
        {
          label: '密码强度分析',
          accelerator: 'CmdOrCtrl+1',
          click: () => {
            mainWindow.webContents.send('menu-password-analysis')
          }
        },
        {
          label: '重复密码检查',
          accelerator: 'CmdOrCtrl+2',
          click: () => {
            mainWindow.webContents.send('menu-duplicate-check')
          }
        },
        {
          label: '数据备份',
          accelerator: 'CmdOrCtrl+3',
          click: () => {
            mainWindow.webContents.send('menu-backup')
          }
        },
        {
          label: '数据清理',
          accelerator: 'CmdOrCtrl+4',
          click: () => {
            mainWindow.webContents.send('menu-cleanup')
          }
        }
      ]
    },
    {
      label: '帮助',
      submenu: [
        {
          label: '使用指南',
          accelerator: 'F1',
          click: () => {
            dialog.showMessageBox(mainWindow, {
              type: 'info',
              title: '使用指南',
              message: '📚 密码管理器使用指南',
              detail: `
🚀 快速开始：
1. 首次使用请设置主密码
2. 点击"添加账号"创建新的账号记录
3. 使用搜索框快速查找账号
4. 点击账号卡片查看详细信息

🔧 高级功能：
• 工具 → 密码强度分析：检查所有密码的安全性
• 工具 → 重复密码检查：发现并处理重复使用的密码
• 工具 → 数据备份：导出数据到本地文件
• 工具 → 数据清理：清理无效或重复的数据

💡 使用技巧：
• 使用分类管理不同类型的账号
• 收藏重要账号以便快速访问
• 定期备份数据确保安全
• 使用密码生成器创建强密码

🔒 安全建议：
• 设置复杂的主密码
• 定期更新弱密码
• 不要在不安全的环境下使用
• 及时锁定应用程序
              `,
              buttons: ['确定']
            })
          }
        },
        {
          label: '快捷键参考',
          accelerator: 'F2',
          click: () => {
            dialog.showMessageBox(mainWindow, {
              type: 'info',
              title: '快捷键参考',
              message: '⌨️ 键盘快捷键大全',
              detail: `
🎯 常用操作：
Ctrl+N     新建账号
Ctrl+G     生成密码
Ctrl+S     安全检查
Ctrl+R     刷新数据

📝 编辑操作：
Ctrl+Z     撤销
Ctrl+Y     重做
Ctrl+X     剪切
Ctrl+C     复制
Ctrl+V     粘贴
Ctrl+A     全选
Ctrl+F     搜索

🔧 工具功能：
Ctrl+1     密码强度分析
Ctrl+2     重复密码检查
Ctrl+3     数据备份
Ctrl+4     数据清理

🚪 应用控制：
Ctrl+I     导入数据
Ctrl+E     导出数据
Ctrl+L     锁定应用
Ctrl+Q     退出应用
              `,
              buttons: ['确定']
            })
          }
        },
        { type: 'separator' },
        {
          label: '检查更新',
          click: () => {
            dialog.showMessageBox(mainWindow, {
              type: 'info',
              title: '检查更新',
              message: '🔄 版本检查',
              detail: `
当前版本：v1.0.0
发布时间：2024年9月

✅ 您正在使用最新版本！

🔔 更新内容：
• 全新的密码管理体验
• 军用级AES-256加密
• 智能密码分析工具
• 多格式数据备份

📢 后续更新：
• 云同步功能（规划中）
• 移动端应用（开发中）
• 团队协作功能（设计中）
• 更多安全特性

💡 获取最新版本请访问：
https://github.com/yourusername/password-manager/releases
              `,
              buttons: ['确定', '访问官网'],
              defaultId: 0
            }).then((result) => {
              if (result.response === 1) {
                shell.openExternal('https://github.com/yourusername/password-manager/releases')
              }
            })
          }
        },
        {
          label: '反馈建议',
          click: () => {
            dialog.showMessageBox(mainWindow, {
              type: 'question',
              title: '反馈建议',
              message: '💌 我们需要您的声音',
              detail: `
📝 反馈方式：
• Bug报告：发现问题请及时反馈
• 功能建议：告诉我们您的需求
• 使用体验：分享您的使用感受

🔗 联系我们：
• GitHub Issues（推荐）
• Email: support@passwordmanager.com
• QQ群: 123456789

🎁 反馈奖励：
• 有效bug报告：获得致谢名单
• 优秀建议：参与功能设计讨论
• 持续贡献：成为项目贡献者

💪 一起让密码管理器变得更好！
              `,
              buttons: ['取消', '提交反馈', 'GitHub Issues'],
              defaultId: 1
            }).then((result) => {
              if (result.response === 1) {
                shell.openExternal('mailto:support@passwordmanager.com')
              } else if (result.response === 2) {
                shell.openExternal('https://github.com/yourusername/password-manager/issues/new')
              }
            })
          }
        },
        { type: 'separator' },
        {
          label: '关于密码管理器',
          click: () => {
            dialog.showMessageBox(mainWindow, {
              type: 'info',
              title: '关于密码管理器',
              message: '🔐 密码管理器 v1.0.0',
              detail: `
🚀 功能特性：
• 🔒 AES-256-GCM 军用级加密保护
• 🎯 智能密码强度分析 (基于 zxcvbn 算法)
• 🔍 重复密码检测与批量更新
• 💾 多格式数据备份 (JSON/CSV/TXT/XML/HTML/YAML)
• 🧹 智能数据清理与优化
• 🎨 现代化响应式界面设计
• ⚡ 快速搜索与分类管理
• 🌟 收藏夹与最近使用功能

🛡️ 安全保障：
• 本地存储，数据不上传云端
• PBKDF2 主密码哈希加密
• 可选备份文件加密保护
• 内存数据自动清理

🔧 技术架构：
• 前端：Vue 3 + Element Plus
• 后端：Electron + Node.js
• 状态管理：Pinia
• 构建工具：Vite

📞 技术支持：
• 开源项目，持续更新维护
• 遵循最佳安全实践标准
• 适用于个人与团队使用

© 2024 密码管理器 - 让密码管理更简单、更安全
              `,
              buttons: ['确定', '查看源码', '报告问题'],
              defaultId: 0,
              cancelId: 0
            }).then((result) => {
              if (result.response === 1) {
                // 查看源码
                shell.openExternal('https://github.com/yourusername/password-manager')
              } else if (result.response === 2) {
                // 报告问题
                shell.openExternal('https://github.com/yourusername/password-manager/issues')
              }
            })
          }
        }
      ]
    }
  ]
}

module.exports = { createMenuTemplate }
